package com.fysports.web.controller.commons;

import com.jfinal.core.Controller;
import com.fysports.web.controller.AbstractBaseController;
import com.fysports.web.kit.commons.PathBizKit;
import com.fysports.web.kit.commons.StringKit;
import com.fysports.web.module.breadcrumb.BreadcrumbModule;
import com.fysports.web.module.menu.SystemManagerLeftMenuModule;


/**
 * 通过参数获取渲染后的模板 <br>
 * 例如url:<br>
 * /goto?go=/system/menu/menu_list.html <br>
 * /goto?go=system/menu/menu_list.html  <br>
 * Created by konbluesky
 * Date : 14-8-4 下午11:01
 * Project : JdmData_WebServer
 */
public class GotoController extends AbstractBaseController {
    private final static String LAYOUT_MENU = "menu";
    private final static String LAYOUT_BREAD = "bread";


    /**
     * 直接访问资源文件
     * 参数：a 表示渲染adminlayout
     */
    public void index() {
        createToken();
        String url = getPara("go");
        autoExeModule(this);
        if (StringKit.isBlank(url))
            return;
        url = url.replaceAll("\\.html", "\\.ftl");
        render(PathBizKit.getPageAdminPath(url));
    }


    /**
     * 根据m标志自动渲染需要的module
     *
     * @param ctr
     */
    private void autoExeModule(Controller ctr) {
        String[] flags = getFlag(ctr.getPara("m", ""));
        if (StringKit.hasVal(flags, LAYOUT_MENU)) {
            menu();
        }
        if (StringKit.hasVal(flags, LAYOUT_BREAD)) {
            breadcrumb();
        }
        execute();
    }


    private void menu() {
        setModule(new SystemManagerLeftMenuModule(getRequest()));
    }


    private void breadcrumb() {
        setModule(new BreadcrumbModule(getRequest()));
    }


    private String[] getFlag(String flag) {
        if (StringKit.isBlank(flag))
            return new String[0];
        return flag.split(",");
    }

}
